package metar;

/**
 * Wettertrend
 * @author Michel Metzger, Java-Kurs 2013
 * @version 1.0.0
 *
 */
public class TrendMetar implements MetarParamInterface {

	/**
	 * kurzfristige Wetterprognose
	 */
	private String trend;	// Vorhersage für die nächsten Stunden: NOSIG, BECMG, TEMPO => NO SIGNIFICANT CHANGE, BECOMING, TEMPORARY  

	/**
	 * Konstruktor
	 */
	public TrendMetar() {
		trend = "";
	}

	/**
	 * Liefert die kurzfristige Vorhersage für ca. 2 Stunden
	 * @return
	 */
	public String getTrend() {
		return trend;
	}

	/**
	 * Liefert den original Parameter aus dem MetarInfo
	 * @return
	 */
	public String getOrigParam() {
		return trend;
	}

	/**
	 * Liefert true, wenn der angegebene Parameter den Trend enthält
	 * @param val
	 * @return
	 */
	public static boolean isValid(String val) {
		if (val == null) {
			return false;
		}

		val = val.toUpperCase();
		if (val.compareTo("NOSIG") == 0 || val.compareTo("BECMG") == 0 || val.compareTo("TEMPO") == 0) {
			return true;
		}
			
		return false;
	}

	/**
	 * Holt den Trend aus dem Parameter
	 * @return
	 * @throws MetarParseException
	 */
	@Override
	public TrendMetar parseParam(String val) throws MetarParseException {
		if (!isValid(val)) {
			throw new MetarParseException("Exception while parsing temperature!");
		}

		// Sample:
		// NOSIG = ("no significant change") Vorhersage für die nächsten zwei Stunden 

		trend = val;
		if (MetarInfo.isDebugMode()) {
			System.out.println("*** Trend.trend=" + trend);
		}
	
		return this;
	}

}
